import re

# 匹配<#list aaa as bbb>,<#list aaa as (bbb)>,<#list aaa as (bbb,index)>,兼容中间夹杂空格
# aaa只能是字母数字下划线, (bbb,index)中,bbb可以是函数,字典中的元素,而index只能是字母数字下划线
regListHead = re.compile(r"\<\s*#list\s+([\w\.\(\)\[\]\"]+)\s+as\s+(\(?(\w+)(\s*,\s*\w+\s*)?\)?)\s*\>")
# </#list>
regListTail = re.compile(r"\<\/\s*#list\s*\>")

# if后的表达式支持常见的比较.和函数,字典.
regIfHead = re.compile(r"\<\s*#if\s+([\w\.\=\<\>\(\)\"\!\|\s\&]+)\s*\>")
# <#elseif xxxxxxx>
regElseIf = re.compile(r"\<\s*#elseif\s+([\w\.\=\<\>\(\)\"\!\|\s\&]+)\s*\>")
# <#else>
regElse = re.compile(r"\<\s*#else\s*\>")
# </#if>
regIfTail = re.compile(r"\<\/\s*#if\s*\>")
# 变量${ xxx }
regVar = re.compile(r"\$\{\s*([^\{^\}]+)\s*\}")
# 变量中的函数
regVar_func = re.compile(r"(\w+(\.\w+)*)\(")
# 变量中的变量
regVar_var = re.compile(r"\w+(\.\w+)*")
# include
regInclude = re.compile(r"\<\s*#include\s+\"([\w\.\:\\\/]+)\"\s*\>")
# 数字
regNumber = re.compile(r"^[-+]?[0-9]+(\.[0-9]+)?$")

regCommentHead = re.compile(r"\<#--")

regCommentTail = re.compile(r"--\>")
